package j_util.data_structures.stack;

import j_util.data_structures.nodus.Nodus;
/*

    This file is part of Logica-Logike.

    Logica-Logike is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
    the Free Software Foundation version 3 of the License.

    Logica-Logike is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public License
    along with Logica-Logike.  If not, see <http://www.gnu.org/licenses/>.

 */
public class StackD implements StackInterface {
    private Nodus top;

    public boolean isEmpty() {
        return top == null;
    }

    public Object top() {
        return top.getData();   //todo tratar eltema de si el objeto stack se halla vacio: lanzo excepcion o lo declaro en aclaracion de clase como presupuesto.
    }

    public void pop() {
        top = top.getNext();
    }

    public void push(Object o) {
        Nodus auxNodus = new Nodus();
        auxNodus.setData(o);
        auxNodus.setNext(top);
        top = auxNodus;
    }

    /*
    public void push(Object o) {
        top = new Nodus(o,top);
    }
    */
}
